<?php
/**
 * Copyright 2008 francissem (http://www.webmoss.net)(francissem@gmail.com)
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * 		http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * @author francissem
 * @copyright 2008 francissem (http://www.webmoss.net)(francissem@gmail.com)
 * @license http://www.apache.org/licenses/LICENSE-2.0
 */
class Core_Repository{
	private static $repositories;
	static function factory($adapter,$restrict,$conn){
		require_once(dirname(__FILE__)."/Repository/{$adapter}.php");
		$adapter_class = "Core_Repository_{$adapter}";
		$k=hash("crc32",serialize($conn));
		$adapter=strtolower($adapter);
		if(!isset(self::$repositories[$k])){
			self::$repositories[$k]=new $adapter_class($restrict,$conn["path"]);
		}
		return self::$repositories[$k];
	}
	static function commitAll(){
		foreach(self::$repositories as $repos){
			$repos->commit();
		}
	}

}
?>